PowerBI自动切换中英文单位

您所在的位置:网站首页 powerbi 书签自动切换 PowerBI自动切换中英文单位

PowerBI自动切换中英文单位

2024-07-12 04:49| 来源: 网络整理| 查看: 265

23

除了干饭,皆无向往;被窝之外,皆是他乡

通常我们在做报表的时候,会给报表设置一个统一的单位,比如百万,这样整个报表的数据看起来就比较规整,但是这样也会出现另一个问题,比如某个值是100,那这样格式化后显示就是0,但事实上它并不是0,只是值相对比较小而已。那有没有一个方法可以根据数值的大小自动来显示单位呢?

答案是肯定的,也正是很多人想到的那样,用计算组。

先来回顾下,在计算组出来之前我们是怎么来切换报表的单位的。首先会新建一张单位表

Unit = SELECTCOLUMNS({    ( "None" , 1 ) ,     ( "K" , 1000 ) ,     ( "W" , 10000 ) ,    ( "M" , 1000000)} , "Name" , [Value1] , "Value" , [Value2] )

新建度量如下:

Sales Amount := SUMX ( Sales, Sales[Quantity] * Sales[Unit Price] )Sales Amount Unit = [Sales Amount] / SELECTEDVALUE( 'Unit'[Value], 1 )

图表显示效果如下:

可以看到数据已经显示了根据选择的单位进行了格式化显示,但是这样会存在一个问题,比如我们导出数据,那么导出的数据也是除以10000后的,但是文件中并没有标注该值的单位,这有可能引起不必要的问题。

接下来就是今天的重点了,使用计算组来对数值的显示进行格式化,打开Tabular Editor,右键新建一个计算组

效果如下:

导出数据效果如下,数据还是未格式化前的样子。

再来看上面计算组中的格式表达的写法,其实原理也很简单,用到了自定义格式字符,具体可见官方文档

https://docs.microsoft.com/zh-cn/dax/format-function-dax

(,)千分位符

(.)小数点占位符

(#)占位符,有值时才显示

(0)占位符,有值时显示该值,无值时显示为0

VAR V = SELECTEDMEASURE ()VAR F =IF(    SWITCH (        TRUE (),        V >= 1E9, "##0,,,.00 G",        V >= 1E6, "##0,,.00 M",        V >= 1E3, "##0,.00 K",        "0.00"    ))RETURN    F

上面代码无论数值是否带有小数,都会保留两位小数,若要自适应当数值是整数时显示为整数,有小数位时才保留小数,可修改为如下:

VAR V = SELECTEDMEASURE ()VAR F =    SWITCH (        TRUE (),        V >= 1E9, "##0,,,.## G",          V >= 1E6, "##0,,.## M",        V >= 1E3, "##0,.## K",           "0.##"    )RETURN    F

这时,我们可以做进一步的变形,从而做到单位进行中英文的的切换。

这时,也许有人会问,如果有是百分比的度量呢,接下来进一步改进格式表达式

VAR V = SELECTEDMEASURE ()VAR F =IF(    SEARCH( "%", SELECTEDMEASURENAME(), 1, 0) = 0,    SWITCH (        TRUE (),        V >= 1E9, "##0,,,.00 G",        V >= 1E6, "##0,,.00 M",        V >= 1E3, "##0,.00 K",        "0.00"    ),    "0.00%")RETURN    F

本篇文章来源于微信公众号: PowerBI木小桼



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3